/*
 * Phi.h
 *
 *  Created on: May 24, 2011
 *      Author: marchi
 */

#ifndef PHI_H_
#define PHI_H_
#include <iostream>
#include <typedefs.h>
#include "Rho.h"
#include "fftw++.h"
#include "Array.h"
using namespace Array;
using namespace fftwpp;


class Phi : public array3<double> {
	bool status;
	array3<Complex> filter;
	Metric Mt;
public:
	Phi(): status(FALSE){};
	Phi(unsigned int nx0,unsigned int ny0,unsigned int nz0):array3<double>(nx0,ny0,nz0),status(FALSE){};
	Phi & operator()(Rho &, bool=FALSE);
	Phi & operator=(array3<double> &);
	Phi & operator=(array3<Complex> &);
	void MakeFilter(int, int, int);
	friend Phi operator-(Phi &, Phi &);
	friend Phi operator+(Phi &, Phi &);
};

#endif /* PHI_H_ */
